Today, information technology (IT) resources are managed using a variety of incompatible and often proprietary interfaces and protocols. Requirements for management information regarding the resources need to be specifically programmed to address new resources and in many cases the specific programming is not updated as new versions of the IT resources become available.
The problem of managing disparate IT resources is becoming more acute as systems are increasingly developed using IT resources that are deployed in remote locations and accessed via information networks, such as the Internet. Generally, the resources to be managed are not readily identifiable when the resources are highly distributed and independent of one another. Further, it is difficult to obtain information regarding properties and attributes of the resources, and protocols for exchanging management information with the resources. A further difficulty lies in determining the relationships among the resources used in a system to pinpoint operational problems when one or more of the resources do not respond as expected.
The term Web services, also referred to herein as “services”, describes an approach to distributed computing in which interactions are carried out through the exchange of eXtensible Markup Language (XML) messages. Web services can perform any task that can be described and contained within one or more modules of code. For example, functions such as language translation or currency conversion, performing calculations for medical claims processing, and handling certain aspects of travel planning can be implemented in a Web service. Essentially any transaction or bit of business logic can become a Web service if it can be accessed and used by another system over a network such as the Internet.
A Web service is a software system identified by a Universal Resource Identifier (URI) whose public interfaces and bindings are typically defined and described in an XML document. The description can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.
The Web services architecture is based upon the interactions between three primary roles: service provider, service registry, and service requestor. These roles interact using publish, find, bind, and other operations. The service provider is the business that provides access to the Web service and publishes the service description in a service registry. The service requestor finds the service description in a service registry and uses the information in the description to bind to a service.
Web services typically send XML messages formatted in accordance with the Simple Object Access Protocol (SOAP) specification. The SOAP specification is a universally agreed-upon protocol that uses XML and optionally HTTP together to invoke functions exposed in Web services.
The XML messages can be described using the Web Services Description Language (WSDL) specification, which, along with the Universal Description Discovery and Integration (UDDI) registry, provides a definition of the interface to a Web service and identifies service providers in a network. The WSDL specification is an XML-based language used to define Web services and describe how to access them. An application trying to use a particular Web Service uses WSDL to find the location of the Web service, the function calls available, and the format that the client must follow to access the Web service. Therefore, the client first obtains a copy of the WSDL file and then uses the information in this file to format a request, often using SOAP.
The UDDI registry supports Web services by providing a place for a company to register its business and the Web services that it offers. Users that need a Web service can use this registry to find a business that provides the service.
Web services are highly extensible, interact in a loosely coupled manner, and are deployed and utilized via various standard specifications such as SOAP, WSDL, and UDDI. In particular, Web services allow businesses to create processes that span multiple enterprises and define networks based on business partnerships. Enterprises are adopting Web services technology to address their business integration needs, but currently there is no standard framework for managing Web services.
Web services have some characteristics that make them especially challenging to manage. One characteristic is that Web services work together to form a distributed application that may extend across an enterprise or even the Internet. The challenge is that there are many viewpoints from which to manage an application. The management challenges with a distributed application involve crossing boundaries of control and management domains while maintaining a unified, yet customized view for the distributed application. For instance, an IT manager may be interested in managing all of the services in a domain, which includes several computer systems. The vantage point is all Web services on a given computer system. In another instance, a process manager may be interested in all of the Web services that work together to drive a process to, completion. This may involve Web services throughout an enterprise, or possibly include Web services hosted by other companies. Still further, a business manager may be interested in all of the service agreements with the company regarding Web services hosted by other companies. The business manager will be interested in making sure the company meets its service agreements with others. Additionally, the service providers' performance in fulfilling the service agreements will be tracked to provide information for making future business decisions.
Another characteristic that presents management challenges is that Web services have been designed to be extensible at all levels. The SOAP protocol standard provides a very flexible mechanism to extend the processing of messages by adding headers to the message. Additionally, the body of the message may be any XML document that is understood by the Web service. The WSDL and XML-schema description standards provide a means to define arbitrary data types, and to extend or restrict previously defined data types. An XML-schema is a document that describes the valid format of an XML data-set, such as elements that are (and are not) allowed at any point; what the attributes for any element may be; and the number of occurrences of elements.
It is also possible for a Web service to provide several interfaces into its functionality. There are also discovery standards that provide their own extensibility mechanisms. The management challenges with such an extensible system include determining the type of a managed object and how to communicate with the object.
The UDDI standard allows WSDL documents to be discovered at run time. This discovery mechanism is not limited to use only within an enterprise, but is available wherever the Web service is available, including the Internet. Furthermore, it is possible to discover not only the basic capabilities of a Web service, but also the advanced capabilities that are specified by this standard. One management challenge with such a powerful discovery mechanism is to ensure that provided services are protected with the proper type of security. Another management challenge is identifying users accessing the provided Web services. Yet another more complex management challenge is to ensure that all appropriate service agreements are not only discoverable but also enforced.